package com.sg.dto.biz.calc.req;

import com.sg.common.dto.BaseDto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotNull;
import java.io.Serializable;

/**
 * @desc ImplementFatherCycleReportScoreFormulaComReqDto
 * @使用场景
 */
@Data
public class ImplementFatherCycleReportScoreFormulaComReqDto
        extends BaseDto
        implements Serializable {

    /**
     * 目标得分OKR变量 FALSE:主树得分没有KR TRUE:主树或个人树向下计算KR CLONE_EVA_OBJECT_REPORT_SCORE_NO_KR:部门目标任务书树得分克隆主树 PERSON_KR_REPORT_SCORE_CLONE_EVA:11111个人树KR得分克隆主树（KR） STANDARD_OBJECT_CLONE_EVA_OBJECT_REPORT_SCORE:11111OKR部门树得分标准O克隆主树（+KR） CUSTOM_OBJECT_CLONE_PERSONAL_REPORT_SCORE:111111OKR部门树得分自定义O克隆个人树（+KR）
     */
    @ApiModelProperty("目标得分OKR变量")
    private String okrOrNoOkr;

    /**
     * 开启或不开启中期 TRUE:是 FALSE:否
     */
    @ApiModelProperty("开启或不开启中期")
    private String openOrCloseMidCycle;

    /**
     * 目标得分主客观变量 SUBJECTIVE:主观得分 OBJECTIVE:客观得分 SUBJECTIVE_AND_OBJECTIVE:主观得分+客观得分
     */
    @ApiModelProperty("目标得分主客观变量")
    private String subAndObjModel;

    /**
     * 小数点规则
     */
    @NotNull(message = "小数点规则不能为空")
    @ApiModelProperty("小数点规则")
    private Long decimalPointRules;

    /**
     * 小数最后一位规则 MALING:尾数抹零 ROUNDED:尾数四舍五入
     */
    @NotNull(message = "小数最后一位规则不能为空")
    @ApiModelProperty("小数最后一位规则")
    private String decimalDigitsLastRules;

    /**
     * 通用数值字段（小数型）
     */
    @ApiModelProperty("汇报平均分")
    private Double comFloatField;

    /**
     * 本级过程得分_最近平均分权重
     */
    @ApiModelProperty("本级过程得分_最近平均分权重")
    private Double processReportScoreAvgWeight;

    /**
     * 汇报得分
     */
    @ApiModelProperty("中期汇报得分")
    private Double reportScoreValue;

    /**
     * 本级过程得分_中期目标得分权重
     */
    @ApiModelProperty("本级过程得分_中期目标得分权重")
    private Double processReportScoreMidWeight;

    /**
     * 通用数值字段1（小数型）
     */
    @ApiModelProperty("下级KR汇报得分权重和")
    private Double comFloatField1;

    /**
     * 本级过程得分_自身KR得分权重
     */
    @ApiModelProperty("本级过程得分_自身KR得分权重")
    private Double processReportScoreKrWeight;

    /**
     * 主观得分
     */
    @ApiModelProperty("主观得分")
    private Double subjectiveScore;

    /**
     * 主客观得分_主观得分权重
     */
    @ApiModelProperty("主客观得分_主观得分权重")
    private Double subjectiveScoreWeight;

    /**
     * 客观得分
     */
    @ApiModelProperty("客观得分")
    private Double objectiveScore;

    /**
     * 主客观得分_客观得分权重
     */
    @ApiModelProperty("主客观得分_客观得分权重")
    private Double objectiveScoreWeight;

    /**
     * 本级过程得分_主客观得分权重
     */
    @ApiModelProperty("本级过程得分_主客观得分权重")
    private Double reportScoreSubAndObjWeight;

    /**
     * 11汇报得分_过程汇报得分权重
     */
    @ApiModelProperty("11汇报得分_过程汇报得分权重")
    private Double reportScoreProcessWeight;

}
